Solide Geogebra 1

A = Point(yAxis)
B = Point(xAxis)
C = Point(Circle[B, Distance[A, B], Segment[A, B]])
a, D, E, F, G, H, faceABCD, faceADHE, faceABFE, faceBCGF, faceCDHG, faceEFGH, arêteAD, arêteAB, arêteBC, arêteCD, arêteAE, arêteDH, arêteEH, arêteEF, arêteBF, arêteFG, arêteCG, arêteGH = Cube(A, B, C)
f = Segment(H, A)
g = Segment(D, E)
h = Segment(F, H)
i = Segment(G, E)
I = Intersect(arêteEF, h)
j = Segment(F, A)
J = Point(arêteAB)
k = Segment(E, J)
l = Segment(J, G)
m = Segment(C, H)
K = Intersect(arêteFG, i)
L = Intersect(arêteAD, g)
n = Segment(G, D)
p = Segment(I, C)
q = Segment(A, C)
r = Segment(L, B)
s = Segment(K, B)
M = Intersect(p, s)
N = Intersect(r, q)
O = Intersect(m, n)
P = Intersect(g, f)
Q = Intersect(h, i)
R = Intersect(j, k)
b, faceMOPR_1, faceMQR, faceMOQ, faceOPQ, facePQR, arêteMR_1, arêteMO_1, arêteOP_1, arêtePR_1, arêteQR, arêteMQ, arêteOQ, arêtePQ = Pyramid(R, M, O, P, Q)
c, faceMOPR, faceMNR, faceNPR, faceNOP, faceMNO, arêteMR, arêtePR, arêteOP, arêteMO, arêteMN, arêteNR, arêteNP, arêteNO = Pyramid(M, R, P, O, N)